{-# LANGUAGE MultiParamTypeClasses #-}

module MultiSet.Class where

class MultiSet1 s where
  member1  :: Eq t => t -> s t -> Bool
  empty1   :: s t
  insert1  :: t -> s t -> s t
  arb1     :: s t -> t
  without1 :: Eq t => s t -> t -> s t
  isEmpty1 :: s t -> Bool

class MultiSet s t where
  member  :: t -> s t -> Bool
  empty   :: s t
  insert  :: t -> s t -> s t
  arb     :: s t -> t
  without :: s t -> t -> s t
  isEmpty :: s t -> Bool
